

function myJSONStringify(obj) {
    if (typeof obj === 'string') return `"${obj}"`
    if (typeof obj === 'number' || typeof obj === 'boolean' || obj === null) {
        return String(obj)
    }
    if (Array.isArray(obj)) {
        return `[${obj.map(item => myJSONStringify(item)).join(',')}]`
    }
    if (typeof obj === 'object') {
        const keys = Object.keys(obj)
        //? key需要加上双引号 value递归处理
        return `{${keys.map(key => `"${key}":${myJSONStringify(obj[key])}`).join(',')}}`
    }
    return undefined
}
console.log(myJSONStringify(1));
console.log(myJSONStringify([1,2,{a:1}]));
console.log(myJSONStringify({
    a:1,
    b:2,
    c:{
        d:3
    }
}));
